草庐IT

由浅入深,聊聊 LeakCanary 的那些事

全部标签

聊聊 Kube-Apiserver 内存优化进阶

原理内存优化是一个经典问题,在看具体 K8S 做了哪些工作之前,可以先抽象一些这个过程,思考一下如果是我们的话,会如何来优化。这个过程可以简单抽象为外部并发请求从服务端获取数据,如何在不影响吞吐的前提下降低服务端内存消耗?一般有几种方式:缓存序列化的结果优化序列化过程内存分配数据压缩在这个场景可能不适用,压缩确实可以降低网络传输带宽,从而提升请求响应速度,但对服务端内存的优化没有太大的作用。kube-apiserver已经支持基于gzip的数据压缩,只需要设置 Accept-Encoding 为gzip即可,详情可以参考官网[1]介绍。当然缓存序列化的结果适用于客户端请求较多的场景,尤其是服务

聊聊 神经网络模型 传播计算逻辑

概述预训练过程就是在不断地更新权重超参数与偏置超参数,最后选择合适的超参数,生成超参数文件。上一篇博客是使用已有的预训练超参数文件,要训练自己的超参数,需要对神经网络层中前向传播与反向传播计算熟悉,了解计算逻辑,才能不断地更新选择合适的超参数。神经网络计算详解整个神经网络的层数是4层,从顺序来分别是:输入层,两层隐藏层,输出层。隐藏层的激活函数选择sigmoid函数;输出层用softmax函数归一化处理。神经网络的各层参数和激活函数符号化如下:输入层:(x)第一个隐藏层:()第二个隐藏层:()输出层:(y)权重参数:()偏置参数:()激活函数:()(例如,Sigmoid、ReLU)损失函数:(

用好kafka,你不得不知的那些工具

前言工欲善其事,必先利其器。本文主要分享一下消息中间件kafka安装部署的过程,以及我平时在工作中针对kafka用的一些客户端工具和监控工具。kafka部署架构一个kafka集群由多个kafkabroker组成,每个broker将自己的元数据信息注册到zookeeper中,通过zookeeper关联形成一个集群。prettyZoo客户端既然kafka依赖zookeeper,我难免就需要看看zookeeper中究竟存储了kafka的哪些数据,这边介绍一款高颜值的客户端工具prettyZoo。PrettyZoo是一款基于ApacheCurator 和 JavaFX 实现的 Zookeeper 图形

分布式锁实现汇总-详述基于Redis实现的那些细节

为了保证同一时间只有一个线程访问某一代码块,Java中可以使用synchronized语法和ReentrantLock等本地锁的方式。但是在分布式环境下,需要使用分布式锁来保证不同节点的线程同步执行。常用的分布式锁实现包括以下几种:基于数据库的分布式锁:使用数据库的事务和行级锁来实现分布式锁,通过在数据库中创建一张锁表来记录锁的状态。基于Redis的分布式锁:利用Redis的原子操作和过期时间特性,使用SETNX命令来获取锁,使用DEL命令来释放锁。基于Zookeeper的分布式锁:利用Zookeeper的有序节点和watch机制,通过创建临时有序节点来实现锁的竞争和释放。三种分布式锁对比优点

聊聊 神经网络模型 示例程序——数字的推理预测

之前学习了解过了神经网络、CNN、RNN、Transformer的内容,但除了在魔塔上玩过demo,也没有比较深入的从示例去梳理走一遍神经网络的运行流程。从数字推测这个常用的示例走一遍主流程。MNIST数据集MNIST是机器学习领域最有名的数据集之一,被应用于从简单的实验到发表的论文研究等各种场合。实际上,在阅读图像识别或机器学习的论文时,MNIST数据集经常作为实验用的数据出现。MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张,这些图像可以用于学习和推理。MNIST数据集的一般使用方法是,先用训练图像进行学习,再用学习到的模型度量能在多大程度上对测试图像进行正确

一起聊聊Ceph RBD和QEMU块设备Qos测试

关于ceph的qosCeph,作为一个高度可扩展的分布式存储系统,已经成为云计算和大数据时代的关键基石。随着企业和组织对数据存储的需求日益增长,Ceph通过其强大的特性,如可靠性、伸缩性和性能,满足了这些需求。然而,随着集群规模的扩大和工作负载的多样性,如何确保资源的有效分配和性能隔离成为了一个重要议题。在这个背景下,Ceph的QualityofService(QoS)功能显得尤为重要。QoS在Ceph中的实现,特别是在其RADOSBlockDevice(RBD)模块中,提供了一种机制来控制和限制存储资源的使用,如IOPS(每秒输入输出操作次数)和带宽。这对于在多租户环境中维持服务质量,防止资

聊聊卷积神经网络CNN

卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种被广泛应用于图像识别、语音识别和自然语言处理等领域的深度学习模型。与RNN、Transformer模型组成AI的三大基石。在卷积神经网络中,相比较普通的神经网络,增加了卷积层(Convolution)和池化层(Pooling)。其结构一般将会是如下:CNN的层连接顺序是"Convolution-ReLU-(Pooling)"(Pooling层有时候可以省略)。图中的Affine层,也被称为全连接层(Dense层)或仿射层,作用是将输入数据(input)与权重矩阵(W)相乘,然后添加偏置(B),从而进行线性变换。这

TensorRT是如何做到架更快的?聊聊知乎还没人谈到的内核部分

本文经自动驾驶之心公众号授权转载,转载请联系出处。一.是什么?2016年Nvidia为自家GPU加速推理而提供的SDK,人们有时也把它叫做推理框架。二.为什么?只有Nvidia最清楚自家GPU或DLA该如何优化,所以TensorRT跑网络的速度是最快的,比直接用Pytorch快N倍。遥遥领先的TensorRT三.怎么做到的?1.搜索整个优化空间与Pytorch等其它训练框架最大区别是,TensorRT的网络优化算法是基于目标GPU所做的推理性能优化,而其它框架一方面需要综合考虑训练和推理,更重要的是它们没有在目标GPU上做针对性的优化。TensorRT又是如何针对目标GPU优化的呢?简单讲就是

我们聊聊从头学服务器组件:在导航间保留状态

存在的问题到目前为止,访问每个页面,服务器返回的都是一个HTML字符串:asyncfunctionsendHTML(res,jsx){consthtml=awaitrenderJSXToHTML(jsx);res.setHeader("Content-Type","text/html");res.end(html);}这对浏览器首次加载是非常友好的——浏览器有针对HTML渲染做针对性优化,会尽可能快地展示——但对于页面导航就不太理想了。我们希望页面支持布局刷新,即只更新"发生变化的部分",页面其他部分不受影响,也让交互变得流畅了。为了说明这个问题,我们向 BlogLayout 组件的  中添加

聊聊分布式 SQL 数据库Doris(九)

优化器的作用是优化查询语句的执行效率,它通过评估不同的执行计划并选择最优的执行计划来实现这一目标。CBO:一种基于成本的优化器,它通过评估不同查询执行计划的成本来选择最优的执行计划。CBO会根据数据库系统定义的统计信息以及其他因素,对不同的执行计划进行评估,并选择成本最低的执行计划。CBO的目标是找到一个最优的执行计划,使得查询的执行成本最低。RBO:一种基于规则的优化器,它通过应用一系列的优化规则来选择最优的执行计划。RBO会根据预定义的规则对查询进行优化,这些规则基于数据库系统的特定逻辑和语义。RBO的优点是实现简单,适用于特定的查询模式和数据分布。然而,RBO可能无法找到最优的执行计划,